package com.tedu.api;

import org.junit.Test;

import java.util.Deque;
import java.util.LinkedList;

public class queueAPI {

//while(queue.size()>0){
  // str=queue.poll();
    /**
     *
     * 需求  编列队列--增强for--对列元素不会消失
     * 提示；for 条件；e E 数组泛型
     *
     *
      */
   // for(String e :queue){
      //  System.out.println("对列元素；"+e);
  //  }
   // System.out.println("Queue对列"+queue);
   // }

//Public class QueueAPI{
    //  Queue   对列    单端对列
  //  @Test
//public  void  testQueue(){...}
//Deque  对列       双端队列     方法基本一致，部分方法不一值
//Deque<String>deque=new LinkedList<>();
//deque.offer(e:"1");   deque.offer(e:"2");
//deque.offer(e:"3");   deque.offer(e:"4");
//System.out.println("双端队列"+deque);
//offerFirst   队首添加元素    OfferLast()对尾添加元素
//deque.offerFirst(e:"蔡徐坤");  deque.offerLast(e:"5");
//System.out.println("获取队列队首；"+deque.getFirst());

//}
/**
 * 需求：1.遍历队列---while---只遍历一次队列【队列元素消失】
 *  提示：while 条件：拿到队列中总长度  size()>0
 *
 */
//        while(queue.size()>0){ //true:队列总数>0 队列有元素 遍历
//            str=queue.poll();//获取队首、删除队列中队首
//            System.out.println("获取队列元素："+str);
//        }
//        System.out.println("Queue队列元素："+queue);
/**
 * 需求：2.遍历队列--增强for--队列元素不消失
 *  提示：for 条件：E e：数组泛型|集合泛型：数组引用|集合引用
 */
@Test
public void testStack(){
    Deque<String> stack=new LinkedList<>();
    /**
     * push() Deque  独有的方法--支线栈结构
     * ---offer：Queue---add：Collection接口  【添加】
     * 作用：【添加：往栈压入一个元素】 压栈操作
     */
    stack.push("夯大力");
    stack.push("恶搞之家");
    stack.push("喜羊羊");
    stack.push("魔方大厦");
    System.out.println("栈结构"+stack);
    /**
     * pop()  出栈一个尾元素 --polLast类似【拿先入后出，最后一个压栈元素】
     */
    String last=stack.pop();
    System.out.println("栈结构："+stack);
    System.out.println("栈结构："+stack);
    //面试题：pop、poll、peek的使用区别？
    /**
     * 需求1：遍历栈结构---while---元素出栈，队列元素需清空
     * 需求2：遍历栈结构--增强for--元素遍历成功，队列元素不变
     */

    while(stack.size()>0) {
        String ls = stack.pop();
        System.out.println("出栈元素：" + ls);
    }
    System.out.println("stack队列元素："+stack);
    for (String str:stack){
        System.out.println("for"+str);
    }
}
}







